package com.servlet.req;
/**
 * @author wzm
 * @create 2024-01-27 16:13
 * project_name:JavaWeb2401
 * @Description
 */

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.BufferedReader;
import java.io.IOException;

@WebServlet("/rs1")
public class ReqeustServlet01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //演示获取请求参数

        //1.请求行
        //获取请求方式
        String method = request.getMethod();
        System.out.println("请求方式：method = " + method);

        //获取项目的访问路径（虚拟目录）
        String contextPath = request.getContextPath();
        System.out.println("项目访问地址：contextPath = " + contextPath);

        //获取项目的URL(统一资源定位符 网址 包含了地址IP端口号项目名资源等)
        StringBuffer requestURL = request.getRequestURL();
        System.out.println("统一资源定位符url:requestURL = " + requestURL);

        //获取项目的URI（统一资源标识符 项目名/资源）
        String requestURI = request.getRequestURI();
        System.out.println("统一资源标识符uri:requestURI = " + requestURI);

        //获取get请求参数
        String queryString = request.getQueryString();
        System.out.println("get请求参数:queryString = " + queryString);


        //2.请求头
        String agent = request.getHeader("User-Agent");//浏览器的版本信息
        System.out.println("请求头：agent = " + agent);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        //3.获取请求体的参数 post
        System.out.println("post提交");

        //获取的是前端传入的文本数据
        //获取字符输入流 
        BufferedReader reader = request.getReader();//username=z&password=123
        //读取流中文本信息
        String s = reader.readLine();
        System.out.println("s = " + s);

        //获取前端的字节数据  获取前端传入的文件的流
        /*ServletInputStream inputStream = request.getInputStream();*/

        /*无论get或post获取请求参数的方式 得到的都是包含所有数据的字符串 需要分割才能获得里面的值  不好处理
        * 我们可以使用servlet中提供的通用的获取参数的方式来处理
        * */

    }
}
